16
תגובות
כשאני רוצה להציג את מספר המוצרים שנמצאים בסל הקניות, אני מקבל שגיאה כזו:
Warning: explode() expects parameter 2 to be string, array given in
הקוד:
Warning: explode() expects parameter 2 to be string, array given in
הקוד:
function displayNumber() {
$cartid = $_SESSION['cartid'];
if (!$cartid) {
return '<p>You have no items in your shopping cart.</p>';
} else {
// Parse the cart session variable
$items = explode(',',$cartid);
$s = (count($items) > 1) ? 's':'';
return '<p>You have <a href="viewCart.php">'.count($items).' item'.$s.' in your shopping cart.</a></p>';
}
}
$cartid = $_SESSION['cartid'];
if (!$cartid) {
return '<p>You have no items in your shopping cart.</p>';
} else {
// Parse the cart session variable
$items = explode(',',$cartid);
$s = (count($items) > 1) ? 's':'';
return '<p>You have <a href="viewCart.php">'.count($items).' item'.$s.' in your shopping cart.</a></p>';
}
}
16 תשובות
תעשה dump לערך הנ"ל של הסשן תגיד לי מה זה מחזיר לך. כי השגיאה אומרת שהמשתנה שהתקבל הוא מערך ..
אתה מתכוון כנראה ל-var_dump. נכון?
התוצאה:
array
0 =>
array
'item_id' => string '11' (length=2)
'quantity' => string '99' (length=2)
1 =>
array
'item_id' => string '14' (length=2)
'quantity' => string '5' (length=1)
0 =>
array
'item_id' => string '11' (length=2)
'quantity' => string '99' (length=2)
1 =>
array
'item_id' => string '14' (length=2)
'quantity' => string '5' (length=1)
אתה רוצה לעשות את הפעולה הנ"ל על כל אחד מאיברי המערך ?
אם כן תוכל לרוץ פשוט על כל האיברים ולבצע את מה שרצית .
תוכל בבקשה להדגים לי את זה?
אני לא כ"כ מבין למה אתה מתכוון "לרוץ פשוט על כל האיברים".
ואיך אני עושה את זה?
בעצם סליחה לא שמתי לב שהמשתנה הנ"ל מכיל את החפצים עצמם חח. פשוט תעיף את הexplode ותעשה ישר count ל$cartid ~
לא. אני יודע למה אתה מתכוון.
אם אני עושה:
count($cartid)
אז הוא מציג מספר שמייצג כמה סוגי מוצרים נמצאים כעת בסל ולא מכליל בתוצאה מוצרים כפולים ( כלומר אם הוספתי לכמות של מוצר מסוים עוד).
לדוגמא, שתבין יותר טוב, אם הוספתי לסל מוצר A ואח"כ הוספתי מוצר B ואח"כ מוצר C ואז עוד פעם מוצר B אז הוא יציג את המספר: 3. אבל למעשה יש 4 מוצרים.
אה, סליחה לא שמתי לב, אז ככה:
function displayNumber() {
$cartid = $_SESSION['cartid'];
if ( ! $cartid){
return '<p>You have no items in your shopping cart.</p>';
}
else{
$items = 0;
foreach( $cartid AS $key => $val )
{
$items += $val['quantity'];
}
$s = (count($items) > 1) ? 's' : '';
return '<p>You have <a href="viewCart.php">'.count($items).' item'.$s.' in your shopping cart.</a></p>';
}
}
$cartid = $_SESSION['cartid'];
if ( ! $cartid){
return '<p>You have no items in your shopping cart.</p>';
}
else{
$items = 0;
foreach( $cartid AS $key => $val )
{
$items += $val['quantity'];
}
$s = (count($items) > 1) ? 's' : '';
return '<p>You have <a href="viewCart.php">'.count($items).' item'.$s.' in your shopping cart.</a></p>';
}
}